import inquirer from 'inquirer';

/**
 * 通过命令行交互获取用户输入的测试配置
 * @returns {Promise<Object>} 返回包含url和isMobile的配置对象
 */
export async function promptQuestions() {
  const mobileDevices = [
    'iPhone 15 Pro',
    'iPhone 15 Pro Max',
    'Pixel 5',
    'iPhone 4',
    'iPad Mini',
    'iPad Pro'
  ];

  const questions = [
    {
      type: 'input',
      name: 'url',
      message: '请输入要测试的网址:',
      default:
        'https://vaserviece.10jqka.com.cn/webpage/newjuece-v4/index.html#/',
      validate: input => {
        if (!input.startsWith('http://') && !input.startsWith('https://')) {
          return '请输入有效的URL地址，需要包含 http:// 或 https:// 前缀';
        }
        return true;
      },
    },
    {
      type: 'confirm',
      name: 'isMobile',
      message: '是否测试移动端?',
      default: true,
    },
    {
      type: 'checkbox',
      name: 'selectedDevices',
      message: '请选择要测试的移动端设备 (空格选择，回车确认):',
      choices: mobileDevices,
      when: answers => answers.isMobile,
      default: mobileDevices,
      validate: input => {
        if (input.length === 0) {
          return '请至少选择一个设备';
        }
        return true;
      },
    },
    {
      type: 'confirm',
      name: 'hasCookie',
      message: '是否需要设置 Cookie?',
      default: false,
    },
    {
      type: 'editor',
      name: 'cookieString',
      message: '请输入 Cookie 字符串 (将打开编辑器，输入完成后保存并关闭):',
      when: answers => answers.hasCookie,
      validate: input => {
        if (!input || input.trim() === '') {
          return '请输入有效的 Cookie 字符串';
        }
        return true;
      },
    },
  ];

  return inquirer.prompt(questions);
}
